################################################################################
# 水文模型服务 - Dockerfile
# 说明: 基于Nexus的基础镜像，直接复制本地编译好的JAR
# 基础镜像: 172.20.7.86:5001/hydro/hydro-model-base:latest (OpenJDK 17)
# 编译方式: 在服务器本地使用Maven编译，不依赖外网
################################################################################

# 使用从Nexus拉取的OpenJDK 17基础镜像
FROM 172.20.7.86:5001/hydro/hydro-model-base:latest

LABEL maintainer="高宇 <contact@waterism.tech>"
LABEL description="水文模型在线服务"
LABEL version="1.0.0"

# 工作目录
WORKDIR /app

# 复制本地编译好的JAR文件
COPY hydro-model-service/target/hydro-model-service.jar app.jar

# 复制依赖的资源目录（如果需要）
COPY hydro-model-core/src/main/resources /app/resources

# 创建必要的目录
RUN mkdir -p /app/logs /app/task-storage /app/output

# 设置时区
ENV TZ=Asia/Shanghai

# JVM参数（可在docker run时覆盖）
ENV JAVA_OPTS="-Xms1g -Xmx4g -XX:+UseG1GC"

# 暴露端口
EXPOSE 8080

# 健康检查
HEALTHCHECK --interval=30s --timeout=10s --start-period=60s --retries=3 \
  CMD curl -f http://localhost:8080/actuator/health || exit 1

# 启动命令
ENTRYPOINT ["sh", "-c", "java $JAVA_OPTS -jar app.jar"]
